home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / compile_to_jvm16.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  59.8 KB  |  1,915 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_jvm.h"
  9. /*No:EXTERNAL_FUNCTION.arguments*/
  10. T0* r679try_to_undefine(T679* C,T0* a1,T0* a2){
  11. T0* R=NULL;
  12. X776undefine_in(a1,a2);
  13. R=r679try_to_undefine_aux(C,a1,a2);
  14. /*IF*/if ((R)!=((void*)(NULL))) {
  15. /*X249*//*[IRF3.3set_clients*/((((T853*)(((T853*)R))))->_clients)=((((T679*)C))->_clients/*20*/);
  16. /*]*/
  17. }
  18. else {
  19. r605fatal_undefine(((T605*)a2),a1);
  20. }
  21. /*FI*/return R;
  22. }
  23. /*No:EXTERNAL_FUNCTION.is_deferred*/
  24. /*No:EXTERNAL_FUNCTION.fz_bad_assertion*/
  25. T0* r679runnable(T0* a1,T0* a2,T0* a3){
  26. T0* R=NULL;
  27. T0* _a=NULL;
  28. int _i=0;
  29. /*IF*/if (!(r608empty(((T608*)a1)))) {
  30. R=r608twin(((T608*)a1));
  31. _i=(((T608*)((T608*)R)))->_upper/*8*/;
  32. while (!((_i)==(0))) {
  33. r604push(((T604*)(oBC364small_eiffel)),a3);
  34. _a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
  35. /*IF*/if ((_a)==((void*)(NULL))) {
  36. r679error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
  37. }
  38. else {
  39. /*[IRF3.6put*/{T608* C1=((T608*)R);
  40. T0* b1=_a;
  41. int b2=_i;
  42. ((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
  43. }/*]*/
  44. }
  45. /*FI*/r604pop(((T604*)(oBC364small_eiffel)));
  46. _i=(_i)-(1);
  47. }
  48. }
  49. /*FI*/return R;
  50. }
  51. /*No:EXTERNAL_FUNCTION.rescue_compound*/
  52. void r679add_into(T679* C,T0* a1){
  53. T0* _fn=NULL;
  54. int _i=0;
  55. C->_base_class=r627base_class(((T627*)(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*/))));
  56. _i=1;
  57. while (!((_i)>(/*(IRF4.6count*/(((T855*)((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/))))->_upper/*8*//*)*/))) {
  58. _fn=/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/;
  59. /*IF*/if (r237has(((T237*)a1),X776to_key(_fn))) {
  60. _fn=/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r237at(((T237*)a1),X776to_key(_fn))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  61. r683add_position(X776start_position(_fn));
  62. r683add_position(X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),_i)/*)*/));
  63. r683error(((T683*)(oBC364eh)),((T0*)ms11_359));
  64. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  65. r7append(((T7*)(oBC683explanation)),b1);
  66. }/*]*/
  67. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  68. }
  69. else {
  70. r237put(((T237*)a1),(T0*)C,X776to_key(_fn));
  71. }
  72. /*FI*/_i=(_i)+(1);
  73. }
  74. }
  75. /*No:EXTERNAL_FUNCTION.end_comment*/
  76. T0* r679try_to_undefine_aux(T679* C,T0* a1,T0* a2){
  77. T0* R=NULL;
  78. {T649*n=malloc(sizeof(*n));
  79. *n=M649;
  80. r649from_effective(n,a1,(((T679*)C))->_arguments/*24*/,(((T679*)C))->_result_type/*12*/,(((T679*)C))->_require_assertion/*32*/,(((T679*)C))->_ensure_assertion/*36*/,a2);
  81. R=(T0*)n;
  82. }
  83. return R;
  84. }
  85. void r679make(T679* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7,T0* a8){
  86. r679make_routine(C,a1,a2,a4,a5,a6);
  87. C->_result_type=a3;
  88. r679make_external_routine(C,a7,a8);
  89. }
  90. /*No:EXTERNAL_FUNCTION.nb_errors*/
  91. /*No:EXTERNAL_FUNCTION.native*/
  92. void r679make_routine(T679* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  93. r679make_e_feature(C,a1,NULL);
  94. C->_header_comment=a4;
  95. C->_arguments=a2;
  96. C->_obsolete_mark=a3;
  97. C->_require_assertion=a5;
  98. }
  99. void r679set_header_comment(T679* C,T0* a1){
  100. /*IF*/if (((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)>(1))) {
  101. C->_end_comment=a1;
  102. }
  103. /*FI*/}
  104. T0* r679start_position(T679* C){
  105. T0* R=NULL;
  106. R=X776start_position(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)C))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  107. return R;
  108. }
  109. T0* r679to_run_feature(T679* C,T0* a1,T0* a2){
  110. T0* R=NULL;
  111. r679check_obsolete(C);
  112. {T892*n=malloc(sizeof(*n));
  113. *n=M892;
  114. r892make(n,a1,a2,(T0*)C);
  115. R=(T0*)n;
  116. }
  117. return R;
  118. }
  119. /*No:EXTERNAL_FUNCTION.alias_string*/
  120. /*No:EXTERNAL_FUNCTION.ensure_assertion*/
  121. /*No:EXTERNAL_FUNCTION.code_require*/
  122. T0* r679run_ensure(T0* a1){
  123. T0* R=NULL;
  124. T0* _r=NULL;
  125. r608clear(((T608*)(oBC359assertion_collector)));
  126. /*[IRF3.3clear*/{T0* _default_item=NULL;
  127. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  128. }/*]*/
  129. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1002,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
  130. _r=r679runnable(oBC359assertion_collector,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
  131. /*IF*/if ((_r)!=((void*)(NULL))) {
  132. {T633*n=malloc(sizeof(*n));
  133. *n=M633;
  134. r633from_runnable(n,_r);
  135. R=(T0*)n;
  136. }
  137. /*[IRF3.3set_header_comment*/((((T633*)(((T633*)R))))->_header_comment)=((((T56*)((T56*)(oBC359header_comment_memory))))->_item/*0*/);
  138. /*]*/
  139. /*[IRF3.3clear*/{T0* _default_item=NULL;
  140. ((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=(_default_item);
  141. }/*]*/
  142. }
  143. /*FI*/return R;
  144. }
  145. T0* r679run_require(T0* a1){
  146. T0* R=NULL;
  147. T0* _ar=NULL;
  148. T0* _hc=NULL;
  149. T0* _er=NULL;
  150. T0* _r=NULL;
  151. int _i=0;
  152. r522clear(((T522*)(oBC359require_collector)));
  153. r605collect_for(((T605*)(X291base_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)))),1001,/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/));
  154. /*IF*/if (!(r522empty(((T522*)(oBC359require_collector))))) {
  155. _i=1;
  156. while (!((_i)>((((T522*)((T522*)(oBC359require_collector))))->_upper/*8*/))) {
  157. _er=r522item(((T522*)(oBC359require_collector)),_i);
  158. _hc=(((T343*)((T343*)_er)))->_header_comment/*4*/;
  159. /*IF*/if (!(/*(IRF4.7empty*/((((T343*)((T343*)_er)))->_list/*8*/)==(NULL)/*)*/)) {
  160. _r=r679runnable((((T343*)((T343*)_er)))->_list/*8*/,/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/),a1);
  161. /*IF*/if ((_r)!=((void*)(NULL))) {
  162. {T343*n=malloc(sizeof(*n));
  163. *n=M343;
  164. r343from_runnable(n,_r);
  165. _er=(T0*)n;
  166. }
  167. /*[IRF3.3set_header_comment*/((((T343*)(((T343*)_er))))->_header_comment)=(_hc);
  168. /*]*/
  169. /*IF*/if ((_ar)==((void*)(NULL))) {
  170. _ar=se_ma522(1,_er);
  171. }
  172. else {
  173. r522add_last(((T522*)_ar),_er);
  174. }
  175. /*FI*/}
  176. /*FI*/}
  177. /*FI*/_i=(_i)+(1);
  178. }
  179. /*IF*/if ((_ar)!=((void*)(NULL))) {
  180. {T567*n=malloc(sizeof(*n));
  181. *n=M567;
  182. /*[IRF3.3make*/((((T567*)(n)))->_list)=(_ar);
  183. /*]*/
  184. R=(T0*)n;
  185. }
  186. }
  187. /*FI*/}
  188. /*FI*/return R;
  189. }
  190. /*No:EXTERNAL_FUNCTION.result_type*/
  191. /*No:EXTERNAL_FUNCTION.fz_03*/
  192. /*No:EXTERNAL_FUNCTION.em1*/
  193. /*No:EXTERNAL_FUNCTION.obsolete_mark*/
  194. /*No:EXTERNAL_FUNCTION.set_clients*/
  195. /*No:EXTERNAL_FUNCTION.em2*/
  196. /*No:EXTERNAL_FUNCTION.names*/
  197. /*No:EXTERNAL_FUNCTION.require_assertion*/
  198. /*No:EXTERNAL_FUNCTION.code_ensure*/
  199. void r679set_rescue_compound(T679* C,T0* a1){
  200. /*IF*/if (((a1)!=((void*)(NULL)))&&(/*(IRF4.1is_deferred*/0/*)*/)) {
  201. r679error(r679start_position(C),((T0*)ms6_368));
  202. }
  203. /*FI*/C->_rescue_compound=a1;
  204. }
  205. void r679make_external_routine(T679* C,T0* a1,T0* a2){
  206. C->_native=a1;
  207. C->_alias_string=a2;
  208. }
  209. int r679can_hide(T679* C,T0* a1,T0* a2){
  210. int R=0;
  211. /*IF*/if (((((T679*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  212. /*IF*/if ((((((T679*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  213. r683add_position(X359start_position(a1));
  214. r679error(r679start_position(C),((T0*)ms5_359));
  215. }
  216. /*FI*/}
  217. /*FI*//*IF*/if (((((T679*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
  218. /*IF*/if ((((((T679*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  219. r683add_position(X359start_position(a1));
  220. r679error(r679start_position(C),((T0*)ms6_359));
  221. }
  222.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T679*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  223. r683add_position(X359start_position(a1));
  224. r679error(r679start_position(C),((T0*)ms7_359));
  225. }
  226. /*FI*/}
  227. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  228. /*IF*/if (((((T679*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  229. /*IF*/if (!(X291is_a_in((((T679*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  230. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  231. r7append(((T7*)(oBC683explanation)),b1);
  232. }/*]*/
  233. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  234. r7append(((T7*)(oBC683explanation)),b1);
  235. }/*]*/
  236. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  237. }
  238. /*FI*/}
  239. /*FI*/}
  240. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  241. /*IF*/if (((((T679*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  242. /*IF*/if (!(r31is_a_in(((T31*)((((T679*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
  243. r683add_position(X359start_position(a1));
  244. r683add_position(r679start_position(C));
  245. /*[IRF3.6append*/{T0* b1=((T0*)ms13_359);
  246. r7append(((T7*)(oBC683explanation)),b1);
  247. }/*]*/
  248. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)a2)))->_current_type/*0*/);
  249. r7append(((T7*)(oBC683explanation)),b1);
  250. }/*]*/
  251. r683error(((T683*)(oBC364eh)),((T0*)ms67_470));
  252. }
  253. /*FI*/}
  254. /*FI*/}
  255. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  256. return R;
  257. }
  258. /*No:EXTERNAL_FUNCTION.header_comment*/
  259. int r679is_merge_with(T679* C,T0* a1,T0* a2){
  260. int R=0;
  261. /*IF*/if (((((T679*)C))->_result_type/*12*/)!=((void*)(/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/)))) {
  262. /*IF*/if ((((((T679*)C))->_result_type/*12*/)==((void*)(NULL)))||((/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/))==((void*)(NULL)))) {
  263. r683add_position(X359start_position(a1));
  264. r679error(r679start_position(C),((T0*)ms2_359));
  265. }
  266. /*FI*/}
  267. /*FI*//*IF*/if (((((T679*)C))->_arguments/*24*/)!=((void*)(X359arguments(a1)))) {
  268. /*IF*/if ((((((T679*)C))->_arguments/*24*/)==((void*)(NULL)))||((X359arguments(a1))==((void*)(NULL)))) {
  269. r683add_position(X359start_position(a1));
  270. r679error(r679start_position(C),((T0*)ms3_359));
  271. }
  272.  else if ((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T679*)C))->_arguments/*24*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)(X359arguments(a1)))))->_flat_list/*12*/))))->_upper/*12*//*)*/)) {
  273. r683add_position(X359start_position(a1));
  274. r679error(r679start_position(C),((T0*)ms4_359));
  275. }
  276. /*FI*/}
  277. /*FI*//*IF*/if (((((T679*)C))->_result_type/*12*/)!=((void*)(NULL))) {
  278. /*IF*/if (!(X291is_a_in((((T679*)C))->_result_type/*12*/,/*X359*/((T0*)(((T398*)((T398*)a1)))->_result_type/*12*/),a2))) {
  279. r683error(((T683*)(oBC364eh)),((T0*)ms12_359));
  280. }
  281. /*FI*/}
  282. /*FI*//*IF*/if (((((T679*)C))->_arguments/*24*/)!=((void*)(NULL))) {
  283. /*IF*/if (!(r31is_a_in(((T31*)((((T679*)C))->_arguments/*24*/)),X359arguments(a1),a2))) {
  284. r683add_position(X359start_position(a1));
  285. r679error(r679start_position(C),((T0*)ms12_359));
  286. }
  287. /*FI*/}
  288. /*FI*/R=(/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0);
  289. return R;
  290. }
  291. /*No:EXTERNAL_FUNCTION.fz_dot*/
  292. /*No:EXTERNAL_FUNCTION.set_ensure_assertion*/
  293. /*No:EXTERNAL_FUNCTION.first_name*/
  294. /*No:EXTERNAL_FUNCTION.clients*/
  295. int r679use_current(T679* C){
  296. int R=0;
  297. R=X845use_current((((T679*)C))->_native/*48*/,(T0*)C);
  298. return R;
  299. }
  300. void r679collect_for(T679* C,int a1){
  301. /*IF*/if ((a1)==(1001)) {
  302. /*IF*/if (((((T679*)C))->_require_assertion/*32*/)!=((void*)(NULL))) {
  303. /*IF*/if (!(r522fast_has(((T522*)(oBC359require_collector)),(((T679*)C))->_require_assertion/*32*/))) {
  304. r522add_last(((T522*)(oBC359require_collector)),(((T679*)C))->_require_assertion/*32*/);
  305. }
  306. /*FI*/}
  307. /*FI*/}
  308. else {
  309. /*IF*/if (((((T679*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  310. /*[IRF3.3set_item*/((((T56*)(((T56*)(oBC359header_comment_memory)))))->_item)=((((T633*)((T633*)((((T679*)C))->_ensure_assertion/*36*/))))->_header_comment/*4*/);
  311. /*]*/
  312. r633add_into(((T633*)((((T679*)C))->_ensure_assertion/*36*/)),oBC359assertion_collector);
  313. }
  314. /*FI*/}
  315. /*FI*/}
  316. void r679error(T0* a1,T0* a2){
  317. r683add_position(a1);
  318. r683error(((T683*)(oBC364eh)),a2);
  319. }
  320. /*No:EXTERNAL_FUNCTION.base_class*/
  321. void r679make_e_feature(T679* C,T0* a1,T0* a2){
  322. C->_names=a1;
  323. C->_result_type=a2;
  324. }
  325. void r679check_obsolete(T679* C){
  326. /*IF*/if (!((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/)) {
  327. /*IF*/if (((((T679*)C))->_obsolete_mark/*28*/)!=((void*)(NULL))) {
  328. /*[IRF3.6append*/{T0* b1=((T0*)ms7_368);
  329. r7append(((T7*)(oBC683explanation)),b1);
  330. }/*]*/
  331. /*[IRF3.6append*/{T0* b1=(((T805*)((T805*)((((T679*)C))->_obsolete_mark/*28*/))))->_to_string/*16*/;
  332. r7append(((T7*)(oBC683explanation)),b1);
  333. }/*]*/
  334. r679warning(r679start_position(C),((T0*)ms137_470));
  335. }
  336. /*FI*/}
  337. /*FI*/}
  338. void r679warning(T0* a1,T0* a2){
  339. r683add_position(a1);
  340. r683warning(((T683*)(oBC364eh)),a2);
  341. }
  342. void r145make(T145* C,T0* a1,T0* a2){
  343. C->_comment=a2;
  344. C->_expression=a1;
  345. }
  346. /*No:LOOP_VARIANT_1.nb_errors*/
  347. /*No:LOOP_VARIANT_1.expression*/
  348. T0* r145start_position(T145* C){
  349. T0* R=NULL;
  350. R=X662start_position((((T145*)C))->_expression/*8*/);
  351. return R;
  352. }
  353. /*No:LOOP_VARIANT_1.comment*/
  354. T0* r145to_runnable(T145* C,T0* a1){
  355. T0* R=NULL;
  356. T0* _e=NULL;
  357. /*IF*/if (((((T145*)C))->_current_type/*12*/)==((void*)(NULL))) {
  358. C->_current_type=a1;
  359. _e=X662to_runnable((((T145*)C))->_expression/*8*/,a1);
  360. /*IF*/if ((_e)==((void*)(NULL))) {
  361. r145error(r145start_position(C),((T0*)ms1_856));
  362. }
  363. else {
  364. C->_expression=_e;
  365. /*IF*/if (!(X291is_integer(X662result_type((((T145*)C))->_expression/*8*/)))) {
  366. r145error(X662start_position((((T145*)C))->_expression/*8*/),((T0*)ms2_856));
  367. }
  368. /*FI*/}
  369. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  370. R=(T0*)C;
  371. }
  372. /*FI*/}
  373. else {
  374. R=r145twin(C);
  375. /*[IRF3.3set_current_type*/((((T145*)(((T145*)R))))->_current_type)=(NULL);
  376. /*]*/
  377. R=r145to_runnable(((T145*)R),a1);
  378. }
  379. /*FI*/return R;
  380. }
  381. T0* r145twin(T145* C){
  382. T0* R=NULL;
  383. R=malloc(sizeof(*C));
  384. *((T145*)R)=*C;
  385. return R;
  386. }
  387. /*No:LOOP_VARIANT_1.set_current_type*/
  388. /*No:LOOP_VARIANT_1.current_type*/
  389. int r145use_current(T145* C){
  390. int R=0;
  391. R=X662use_current((((T145*)C))->_expression/*8*/);
  392. return R;
  393. }
  394. void r145error(T0* a1,T0* a2){
  395. r683add_position(a1);
  396. r683error(((T683*)(oBC364eh)),a2);
  397. }
  398. void r145afd_check(T145* C){
  399. X662afd_check((((T145*)C))->_expression/*8*/);
  400. }
  401. /*No:RUN_FEATURE_8.arguments*/
  402. /*No:RUN_FEATURE_8.us_character_bits*/
  403. /*No:RUN_FEATURE_8.ucs_true*/
  404. /*No:RUN_FEATURE_8.us_generator*/
  405. void r892routine_mapping_jvm(T892* C){
  406. int _stack_level=0;
  407. int _idx=0;
  408. T0* _ct=NULL;
  409. T0* _rt=NULL;
  410. _ct=(((T892*)C))->_current_type/*4*/;
  411. r228push_target_as_target(((T228*)(oBC364jvm)));
  412. _stack_level=-((1)+(r228push_arguments(((T228*)(oBC364jvm)))));
  413. _rt=(((T892*)C))->_result_type/*24*/;
  414. /*IF*/if ((_rt)!=((void*)(NULL))) {
  415. _stack_level=(_stack_level)+(X291jvm_stack_space(_rt));
  416. }
  417. /*FI*/_idx=r95idx_methodref(((T95*)(oBC364constant_pool)),(T0*)C);
  418. r355jvm_invoke(((T355*)(X291run_class(_ct))),_idx,_stack_level);
  419. }
  420. /*No:RUN_FEATURE_8.actuals_clients*/
  421. T0* r892jvm_descriptor(T892* C){
  422. T0* R=NULL;
  423. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC496tmp_jvm_descriptor)))))->_count)=(0);
  424. /*]*/
  425. /*[IRF3.4update_tmp_jvm_descriptor*/r892routine_update_tmp_jvm_descriptor(C);
  426. /*]*/
  427. R=oBC496tmp_jvm_descriptor;
  428. return R;
  429. }
  430. void r892method_info_start(T892* C){
  431. int _flags=0;
  432. _flags=X291jvm_method_flags((((T892*)C))->_current_type/*4*/);
  433. r506start(((T506*)(oBC364method_info)),_flags,X776to_key((((T892*)C))->_name/*16*/),r892jvm_descriptor(C));
  434. }
  435. /*No:RUN_FEATURE_8.us_integer_bits*/
  436. /*No:RUN_FEATURE_8.ucs_in_computation*/
  437. void r892routine_update_tmp_jvm_descriptor(T892* C){
  438. T0* _rt=NULL;
  439. T0* _ct=NULL;
  440. r7extend(((T7*)(oBC496tmp_jvm_descriptor)),'\50');
  441. _ct=(((T892*)C))->_current_type/*4*/;
  442. X291jvm_target_descriptor_in(_ct,oBC496tmp_jvm_descriptor);
  443. /*IF*/if (((((T892*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  444. r31jvm_descriptor_in(((T31*)((((T892*)C))->_arguments/*20*/)),oBC496tmp_jvm_descriptor);
  445. }
  446. /*FI*/_rt=(((T892*)C))->_result_type/*24*/;
  447. /*IF*/if ((_rt)==((void*)(NULL))) {
  448. r7append(((T7*)(oBC496tmp_jvm_descriptor)),((T0*)ms153_470));
  449. }
  450. else {
  451. _rt=X291run_type(_rt);
  452. r7extend(((T7*)(oBC496tmp_jvm_descriptor)),'\51');
  453. X291jvm_descriptor_in(_rt,oBC496tmp_jvm_descriptor);
  454. }
  455. /*FI*/}
  456. void r892make(T892* C,T0* a1,T0* a2,T0* a3){
  457. C->_current_type=a1;
  458. C->_name=a2;
  459. C->_base_feature=a3;
  460. r199put(((T199*)((((T355*)((T355*)(r892run_class(C)))))->_feature_dictionary/*24*/)),(T0*)C,X776to_key(a2));
  461. r604incr_magic_count(((T604*)(oBC364small_eiffel)));
  462. C->_use_current_state=1005;
  463. r604push(((T604*)(oBC364small_eiffel)),(T0*)C);
  464. r892initialize(C);
  465. r604pop(((T604*)(oBC364small_eiffel)));
  466. }
  467. void r892std_compute_use_current(T892* C){
  468. /*IF*/if (((((T892*)C))->_use_current_state/*40*/)==(1006)) {
  469. /*IF*/if (((((T892*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  470. /*IF*/if (r567use_current(((T567*)((((T892*)C))->_require_assertion/*28*/)))) {
  471. C->_use_current_state=1004;
  472. }
  473. /*FI*/}
  474. /*FI*/}
  475. /*FI*//*IF*/if (((((T892*)C))->_use_current_state/*40*/)==(1006)) {
  476. /*IF*/if (((((T892*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  477. /*IF*/if (r592use_current(((T592*)((((T892*)C))->_routine_body/*32*/)))) {
  478. C->_use_current_state=1004;
  479. }
  480. /*FI*/}
  481. /*FI*/}
  482. /*FI*//*IF*/if (((((T892*)C))->_use_current_state/*40*/)==(1006)) {
  483. /*IF*/if (((((T892*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  484. /*IF*/if (r633use_current(((T633*)((((T892*)C))->_ensure_assertion/*36*/)))) {
  485. C->_use_current_state=1004;
  486. }
  487. /*FI*/}
  488. /*FI*/}
  489. /*FI*//*IF*/if (((((T892*)C))->_use_current_state/*40*/)==(1006)) {
  490. C->_use_current_state=1003;
  491. }
  492. /*FI*/}
  493. /*No:RUN_FEATURE_8.name*/
  494. int fBC364type_string=0;
  495. T0*oBC364type_string=NULL;
  496. T0* r892type_string(void){
  497. if (fBC364type_string==0){
  498. T0* R=NULL;
  499. fBC364type_string=1;
  500. {T491*n=malloc(sizeof(*n));
  501. *n=M491;
  502. r491make(n,NULL);
  503. R=(T0*)n;
  504. }
  505. oBC364type_string=R;}
  506. return oBC364type_string;}
  507. /*No:RUN_FEATURE_8.fz_iinaiv*/
  508. int r892arg_count(T892* C){
  509. int R=0;
  510. /*IF*/if (((((T892*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  511. R=/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T892*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/;
  512. }
  513. /*FI*/return R;
  514. }
  515. void r892routine_afd_check(T892* C){
  516. /*IF*/if (((((T892*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  517. r567afd_check(((T567*)((((T892*)C))->_require_assertion/*28*/)));
  518. }
  519. /*FI*//*IF*/if (((((T892*)C))->_routine_body/*32*/)!=((void*)(NULL))) {
  520. r592afd_check(((T592*)((((T892*)C))->_routine_body/*32*/)));
  521. }
  522. /*FI*//*IF*/if (((((T892*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  523. r633afd_check(((T633*)((((T892*)C))->_ensure_assertion/*36*/)));
  524. }
  525. /*FI*/}
  526. /*No:RUN_FEATURE_8.local_vars*/
  527. void r892jvm_opening(T892* C){
  528. r892method_info_start(C);
  529. r892jvm_define_opening(C);
  530. }
  531. /*No:RUN_FEATURE_8.base_feature*/
  532. int r892integer_value(T892* C,T0* a1){
  533. int R=0;
  534. T0* _n=NULL;
  535. _n=X776to_string((((T892*)C))->_name/*16*/);
  536. /*IF*/if ((((T0*)ms81_473))==((void*)(_n))) {
  537. R= (CHAR_BIT*sizeof(int)) ;
  538. }
  539.  else if ((((T0*)ms56_473))==((void*)(_n))) {
  540. R= CHAR_BIT ;
  541. }
  542. else {
  543. r683add_position(a1);
  544. r683add_position(/*(IRF4.6start_position*/r679start_position(((T679*)((((T892*)C))->_base_feature/*48*/)))/*)*/);
  545. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms69_470);
  546. r683fatal_error(((T683*)(oBC364eh)),b1);
  547. }/*]*/
  548. }
  549. /*FI*/return R;
  550. }
  551. /*No:RUN_FEATURE_8.start_position*/
  552. /*No:RUN_FEATURE_8.us_is_expanded_type*/
  553. int r892jvm_max_locals(T892* C){
  554. int R=0;
  555. R=X291jvm_stack_space((((T892*)C))->_current_type/*4*/);
  556. /*IF*/if (((((T892*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  557. R=(R)+(r31jvm_stack_space(((T31*)((((T892*)C))->_arguments/*20*/))));
  558. }
  559. /*FI*//*IF*//*AF*//*AE*/
  560. /*FI*//*IF*/if (((((T892*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  561. R=(R)+(X291jvm_stack_space((((T892*)C))->_result_type/*24*/));
  562. }
  563. /*FI*/return R;
  564. }
  565. int r892jvm_result_offset(T892* C){
  566. int R=0;
  567. R=X291jvm_stack_space((((T892*)C))->_current_type/*4*/);
  568. /*IF*/if (((((T892*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  569. R=(R)+(r31jvm_stack_space(((T31*)((((T892*)C))->_arguments/*20*/))));
  570. }
  571. /*FI*//*IF*//*AF*//*AE*/
  572. /*FI*/return R;
  573. }
  574. /*No:RUN_FEATURE_8.ensure_assertion*/
  575. int r892is_exported_in(T892* C,T0* a1){
  576. int R=0;
  577. R=r636gives_permission_to(((T636*)(r892clients(C))),a1);
  578. return R;
  579. }
  580. void r892jvm_define_opening(T892* C){
  581. T0* _t=NULL;
  582. /*IF*/if (((((T892*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  583. _t=X291run_type((((T892*)C))->_result_type/*24*/);
  584. X291jvm_initialize_local(_t,r892jvm_result_offset(C));
  585. }
  586. /*FI*//*IF*//*AF*//*AE*/
  587. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  588. /*IF*/if (((((T892*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  589. r633compile_to_jvm_old(((T633*)((((T892*)C))->_ensure_assertion/*36*/)));
  590. }
  591. /*FI*/}
  592. /*FI*//*IF*/if (((((T892*)C))->_require_assertion/*28*/)!=((void*)(NULL))) {
  593. r567compile_to_jvm(((T567*)((((T892*)C))->_require_assertion/*28*/)));
  594. }
  595. /*FI*/}
  596. void r892compute_use_current(T892* C){
  597. /*IF*/if (r679use_current(((T679*)((((T892*)C))->_base_feature/*48*/)))) {
  598. C->_use_current_state=1004;
  599. }
  600. else {
  601. r892std_compute_use_current(C);
  602. }
  603. /*FI*/}
  604. /*No:RUN_FEATURE_8.result_type*/
  605. void r892jvm_field_or_method(T892* C){
  606. T0* _bcn=NULL;
  607. T0* _n=NULL;
  608. T0* _native=NULL;
  609. _n=X776to_string((((T892*)C))->_name/*16*/);
  610. /*IF*/if ((((T0*)ms52_473))==((void*)(_n))) {
  611. r228add_field((T0*)C);
  612. }
  613. else {
  614. _native=(((T679*)((T679*)((((T892*)C))->_base_feature/*48*/))))->_native/*48*/;
  615. _bcn=(((T451*)((T451*)((((T605*)((T605*)((((T679*)((T679*)((((T892*)C))->_base_feature/*48*/))))->_base_class/*4*/))))->_base_class_name/*24*/))))->_to_string/*0*/;
  616. X845jvm_add_method_for_function(_native,(T0*)C,_bcn,_n);
  617. }
  618. /*FI*/}
  619. int r892jvm_argument_offset(T892* C,T0* a1){
  620. int R=0;
  621. R=X291jvm_stack_space((((T892*)C))->_current_type/*4*/);
  622. R=(R)+(r31jvm_offset_of(((T31*)((((T892*)C))->_arguments/*20*/)),a1));
  623. return R;
  624. }
  625. int r892is_static(T892* C){
  626. int R=0;
  627. T0* _type_bit=NULL;
  628. T0* _n=NULL;
  629. _n=X776to_string((((T892*)C))->_name/*16*/);
  630. /*IF*/if ((((T0*)ms83_473))==((void*)(_n))) {
  631. R=1;
  632. /*IF*/if (X291is_expanded((((T892*)C))->_current_type/*4*/)) {
  633. C->_static_value_mem=1;
  634. }
  635. /*FI*/}
  636.  else if ((((T0*)ms82_473))==((void*)(_n))) {
  637. R=1;
  638. /*IF*/if (X291is_basic_eiffel_expanded((((T892*)C))->_current_type/*4*/)) {
  639. C->_static_value_mem=1;
  640. }
  641. /*FI*/}
  642.  else if (((((T0*)ms60_473))==((void*)(_n)))&&(X291is_bit((((T892*)C))->_current_type/*4*/))) {
  643. R=1;
  644. _type_bit=(((T892*)C))->_current_type/*4*/;
  645. if(NULL!=(_type_bit))switch(((T0*)_type_bit)->id) {
  646. case 549: case 558: 
  647. break;
  648. default:
  649. _type_bit=NULL;
  650. };C->_static_value_mem=X609nb(_type_bit);
  651. }
  652. /*FI*/return R;
  653. }
  654. /*No:RUN_FEATURE_8.us_bitn*/
  655. /*No:RUN_FEATURE_8.us_twin*/
  656. void r892add_client(T892* C,T0* a1){
  657. int _i=0;
  658. /*IF*/if (((((T892*)C))->_actuals_clients/*12*/)==((void*)(NULL))) {
  659. {T187*n=malloc(sizeof(*n));
  660. *n=M187;
  661. r187with_capacity(n,4);
  662. C->_actuals_clients=(T0*)n;
  663. }
  664. r187add_last(((T187*)((((T892*)C))->_actuals_clients/*12*/)),a1);
  665. }
  666. else {
  667. _i=r187fast_index_of(((T187*)((((T892*)C))->_actuals_clients/*12*/)),a1);
  668. /*IF*/if ((_i)>((((T187*)((T187*)((((T892*)C))->_actuals_clients/*12*/))))->_upper/*8*/)) {
  669. r187add_last(((T187*)((((T892*)C))->_actuals_clients/*12*/)),a1);
  670. }
  671. /*FI*/}
  672. /*FI*/r355add_client(((T355*)(r892run_class(C))),a1);
  673. }
  674. /*No:RUN_FEATURE_8.require_assertion*/
  675. /*No:RUN_FEATURE_8.use_current_state*/
  676. /*No:RUN_FEATURE_8.us_is_basic_expanded_type*/
  677. /*No:RUN_FEATURE_8.us_generating_type*/
  678. /*No:RUN_FEATURE_8.can_be_dropped*/
  679. /*No:RUN_FEATURE_8.us_count*/
  680. void r892jvm_define_closing(T892* C){
  681. /*IF*/if (r892use_current(C)) {
  682. }
  683. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  684. /*IF*/if (((((T892*)C))->_ensure_assertion/*36*/)!=((void*)(NULL))) {
  685. r633compile_to_jvm(((T633*)((((T892*)C))->_ensure_assertion/*36*/)),1);
  686. }
  687. /*FI*/}
  688. /*FI*//*IF*/if (((((T892*)C))->_result_type/*24*/)!=((void*)(NULL))) {
  689. X291jvm_push_local((((T892*)C))->_result_type/*24*/,r892jvm_result_offset(C));
  690. }
  691. /*FI*/}
  692. /*No:RUN_FEATURE_8.us_se_argc*/
  693. void r892mapping_jvm(T892* C){
  694. T0* _bcn=NULL;
  695. T0* _native=NULL;
  696. T0* _bf=NULL;
  697. _bf=(((T892*)C))->_base_feature/*48*/;
  698. _native=(((T679*)((T679*)_bf)))->_native/*48*/;
  699. _bcn=(((T451*)((T451*)((((T605*)((T605*)((((T679*)((T679*)_bf)))->_base_class/*4*/))))->_base_class_name/*24*/))))->_to_string/*0*/;
  700. X845jvm_mapping_function(_native,(T0*)C,_bcn,X776to_string(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)((T679*)_bf)))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/));
  701. }
  702. /*No:RUN_FEATURE_8.current_type*/
  703. T0* r892run_class(T892* C){
  704. T0* R=NULL;
  705. R=X291run_class((((T892*)C))->_current_type/*4*/);
  706. return R;
  707. }
  708. /*No:RUN_FEATURE_8.static_value_mem*/
  709. /*No:RUN_FEATURE_8.fz_19*/
  710. /*No:RUN_FEATURE_8.ucs_not_computed*/
  711. /*No:RUN_FEATURE_8.routine_body*/
  712. void r892fall_down(T892* C){
  713. T0* _rf=NULL;
  714. T0* _sub_name=NULL;
  715. T0* _sub_bc=NULL;
  716. T0* _current_bc=NULL;
  717. T0* _sub_rc=NULL;
  718. T0* _current_rc=NULL;
  719. int _i=0;
  720. T0* _running=NULL;
  721. _current_rc=X291run_class((((T892*)C))->_current_type/*4*/);
  722. _running=(((T355*)((T355*)_current_rc)))->_running/*12*/;
  723. /*IF*/if ((_running)!=((void*)(NULL))) {
  724. _current_bc=X291base_class((((T892*)C))->_current_type/*4*/);
  725. _i=(((T396*)((T396*)_running)))->_lower/*12*/;
  726. while (!((_i)>((((T396*)((T396*)_running)))->_upper/*8*/))) {
  727. _sub_rc=r396item(((T396*)_running),_i);
  728. /*IF*/if ((_sub_rc)!=((void*)(_current_rc))) {
  729. _sub_bc=X291base_class((((T355*)((T355*)_sub_rc)))->_current_type/*0*/);
  730. _sub_name=r605new_name_of(((T605*)_sub_bc),_current_bc,(((T892*)C))->_name/*16*/);
  731. _rf=r355get_feature(((T355*)_sub_rc),_sub_name);
  732. }
  733. /*FI*/_i=(_i)+(1);
  734. }
  735. }
  736. /*FI*/}
  737. void r892jvm_closing_fast(T892* C){
  738. X291jvm_return_code(X291run_type((((T892*)C))->_result_type/*24*/));
  739. r506finish(((T506*)(oBC364method_info)));
  740. }
  741. /*No:RUN_FEATURE_8.ucs_false*/
  742. /*No:RUN_FEATURE_8.is_pre_computable*/
  743. T0* r892clients(T892* C){
  744. T0* R=NULL;
  745. T0* _bfbc=NULL;
  746. T0* _bc=NULL;
  747. /*IF*/if (((((T892*)C))->_clients_memory/*8*/)==((void*)(NULL))) {
  748. _bc=X291base_class((((T892*)C))->_current_type/*4*/);
  749. _bfbc=(((T679*)((T679*)((((T892*)C))->_base_feature/*48*/))))->_base_class/*4*/;
  750. /*IF*/if ((_bc)==((void*)(_bfbc))) {
  751. R=(((T679*)((T679*)((((T892*)C))->_base_feature/*48*/))))->_clients/*20*/;
  752. }
  753. else {
  754. R=r605clients_for(((T605*)_bc),(((T892*)C))->_name/*16*/);
  755. }
  756. /*FI*/C->_clients_memory=R;
  757. }
  758. else {
  759. R=(((T892*)C))->_clients_memory/*8*/;
  760. }
  761. /*FI*/return R;
  762. }
  763. int r892use_current(T892* C){
  764. int R=0;
  765. {int z1=(((T892*)C))->_use_current_state/*40*/;
  766.  
  767. if((1004==z1)){
  768. R=1;
  769. }
  770.  else 
  771. if((1003==z1)){
  772. }
  773.  else 
  774. if((1005==z1)){
  775. C->_use_current_state=1006;
  776. r892compute_use_current(C);
  777. R=r892use_current(C);
  778. }
  779.  else {R=1;
  780. }}
  781. return R;
  782. }
  783. /*No:RUN_FEATURE_8.fz_a9*/
  784. void r892jvm_define(T892* C){
  785. T0* _cp=NULL;
  786. T0* _bcn=NULL;
  787. T0* _n=NULL;
  788. T0* _native=NULL;
  789. T0* _bf=NULL;
  790. _bf=(((T892*)C))->_base_feature/*48*/;
  791. _n=X776to_string(/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T679*)((T679*)_bf)))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/);
  792. /*IF*/if ((((T0*)ms52_473))==((void*)(_n))) {
  793. _cp=oBC364constant_pool;
  794. r543add(((T543*)(oBC364field_info)),1,r95idx_uft8(((T95*)_cp),_n),r95idx_uft8(((T95*)_cp),((T0*)ms235_470)));
  795. }
  796. else {
  797. _native=(((T679*)((T679*)_bf)))->_native/*48*/;
  798. _bcn=(((T451*)((T451*)((((T605*)((T605*)((((T679*)((T679*)_bf)))->_base_class/*4*/))))->_base_class_name/*24*/))))->_to_string/*0*/;
  799. X845jvm_define_function(_native,(T0*)C,_bcn,_n);
  800. }
  801. /*FI*/}
  802. int r892jvm_local_variable_offset(T892* C,T0* a1){
  803. int R=0;
  804. R=X291jvm_stack_space((((T892*)C))->_current_type/*4*/);
  805. /*IF*/if (((((T892*)C))->_arguments/*20*/)!=((void*)(NULL))) {
  806. R=(R)+(r31jvm_stack_space(((T31*)((((T892*)C))->_arguments/*20*/))));
  807. }
  808. /*FI*/R=(R)+(r620jvm_offset_of(((T620*)(/*(IRF4.1local_vars*/NULL/*)*/)),a1));
  809. return R;
  810. }
  811. /*No:RUN_FEATURE_8.fatal_error*/
  812. /*No:RUN_FEATURE_8.clients_memory*/
  813. void r892initialize(T892* C){
  814. T0* _type_bit_ref=NULL;
  815. T0* _rf=NULL;
  816. T0* _n=NULL;
  817. _n=X776to_string((((T892*)C))->_name/*16*/);
  818. C->_arguments=(((T679*)((T679*)((((T892*)C))->_base_feature/*48*/))))->_arguments/*24*/;
  819. /*IF*/if ((((((T892*)C))->_arguments/*20*/)!=((void*)(NULL)))&&((/*(IRF4.6count*/(((T65*)((T65*)((((T31*)((T31*)((((T892*)C))->_arguments/*20*/))))->_flat_list/*12*/))))->_upper/*12*//*)*/)>(0))) {
  820. C->_arguments=r31to_runnable(((T31*)((((T892*)C))->_arguments/*20*/)),(((T892*)C))->_current_type/*4*/);
  821. }
  822. /*FI*//*IF*/if ((((T0*)ms52_473))==((void*)(_n))) {
  823. _type_bit_ref=(((T892*)C))->_current_type/*4*/;
  824. if(NULL!=(_type_bit_ref))switch(((T0*)_type_bit_ref)->id) {
  825. case 963: 
  826. break;
  827. default:
  828. _type_bit_ref=NULL;
  829. };C->_result_type=(((T963*)((T963*)_type_bit_ref)))->_type_bit/*4*/;
  830. }
  831. else {
  832. C->_result_type=X291to_runnable((((T679*)((T679*)((((T892*)C))->_base_feature/*48*/))))->_result_type/*12*/,(((T892*)C))->_current_type/*4*/);
  833. }
  834. /*FI*//*IF*/if (r590require_check(((T590*)(oBC364run_control)))) {
  835. C->_require_assertion=r679run_require((T0*)C);
  836. }
  837. /*FI*//*IF*/if (r590ensure_check(((T590*)(oBC364run_control)))) {
  838. C->_ensure_assertion=r679run_ensure((T0*)C);
  839. }
  840. /*FI*//*IF*/if ((((T0*)ms139_473))==((void*)(_n))) {
  841. _rf=r355get_copy(((T355*)(r892run_class(C))));
  842. }
  843.  else if ((((T0*)ms110_473))==((void*)(_n))) {
  844. r355set_at_run_time(((T355*)(r491run_class(((T491*)(r892type_string()))))));
  845. }
  846.  else if ((((T0*)ms78_473))==((void*)(_n))) {
  847. r355set_at_run_time(((T355*)(r491run_class(((T491*)(r892type_string()))))));
  848. }
  849.  else if ((((T0*)ms79_473))==((void*)(_n))) {
  850. r355set_at_run_time(((T355*)(r491run_class(((T491*)(r892type_string()))))));
  851. }
  852. /*FI*/}
  853. void r892jvm_closing(T892* C){
  854. r892jvm_define_closing(C);
  855. X291jvm_return_code(X291run_type((((T892*)C))->_result_type/*24*/));
  856. r506finish(((T506*)(oBC364method_info)));
  857. }
  858. /*No:RUN_FEATURE_8.afd_check*/
  859. /*No:RUN_FEATURE_8.update_tmp_jvm_descriptor*/
  860. T0* r796add_comment(T796* C,T0* a1){
  861. T0* R=NULL;
  862. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  863. R=(T0*)C;
  864. }
  865. else {
  866. {T529*n=malloc(sizeof(*n));
  867. *n=M529;
  868. r529make(n,(T0*)C,a1);
  869. R=(T0*)n;
  870. }
  871. }
  872. /*FI*/return R;
  873. }
  874. int r796to_integer(T796* C){
  875. int R=0;
  876. r796error((((T796*)C))->_start_position/*16*/,((T0*)ms69_470));
  877. return R;
  878. }
  879. int r796is_a(T796* C,T0* a1){
  880. int R=0;
  881. R=X291is_a(/*(IRF4.4run_type*/((T0*)((T284*)r796result_type()))/*)*/,X291run_type(X662result_type(a1)));
  882. /*IF*/if (!(R)) {
  883. r683add_position((((T796*)C))->_start_position/*16*/);
  884. r796error(X662start_position(a1),((T0*)ms4_662));
  885. }
  886. /*FI*/return R;
  887. }
  888. /*No:E_VOID.is_current*/
  889. /*No:E_VOID.jvm_branch_if_false*/
  890. /*No:E_VOID.static_value*/
  891. void r796make(T796* C,T0* a1){
  892. C->_start_position=a1;
  893. C->_to_string=((T0*)ms147_473);
  894. }
  895. /*No:E_VOID.to_string*/
  896. /*No:E_VOID.compile_to_jvm_assignment*/
  897. /*No:E_VOID.fz_iinaiv*/
  898. /*No:E_VOID.jvm_branch_if_true*/
  899. /*No:E_VOID.start_position*/
  900. /*No:E_VOID.compile_to_jvm_old*/
  901. T0* r796to_runnable(T796* C,T0* a1){
  902. T0* R=NULL;
  903. /*IF*/if (((((T796*)C))->_current_type/*8*/)==((void*)(NULL))) {
  904. C->_current_type=a1;
  905. R=(T0*)C;
  906. }
  907. else {
  908. R=r796twin(C);
  909. /*[IRF3.3set_current_type*/((((T796*)(((T796*)R))))->_current_type)=(a1);
  910. /*]*/
  911. }
  912. /*FI*/return R;
  913. }
  914. int fBC796result_type=0;
  915. T0*oBC796result_type=NULL;
  916. T0* r796result_type(void){
  917. if (fBC796result_type==0){
  918. T0* R=NULL;
  919. fBC796result_type=1;
  920. {T284*n=malloc(sizeof(*n));
  921. *n=M284;
  922. r284make(n,NULL);
  923. R=(T0*)n;
  924. }
  925. oBC796result_type=R;}
  926. return oBC796result_type;}
  927. /*No:E_VOID.is_result*/
  928. T0* r796twin(T796* C){
  929. T0* R=NULL;
  930. R=malloc(sizeof(*C));
  931. *((T796*)R)=*C;
  932. return R;
  933. }
  934. /*No:E_VOID.set_current_type*/
  935. /*No:E_VOID.is_static*/
  936. int r796compile_to_jvm_into(T0* a1){
  937. int R=0;
  938. R=1;
  939. /*[IRF3.2compile_to_jvm*//*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1);
  940. /*]*/
  941. /*]*/
  942. return R;
  943. }
  944. /*No:E_VOID.compile_target_to_jvm*/
  945. /*No:E_VOID.can_be_dropped*/
  946. /*No:E_VOID.current_type*/
  947. /*No:E_VOID.jvm_assign*/
  948. /*No:E_VOID.static_value_mem*/
  949. /*No:E_VOID.is_manifest_string*/
  950. /*No:E_VOID.is_void*/
  951. /*No:E_VOID.compile_to_jvm*/
  952. /*No:E_VOID.is_pre_computable*/
  953. /*No:E_VOID.use_current*/
  954. /*No:E_VOID.us_void*/
  955. void r796error(T0* a1,T0* a2){
  956. r683add_position(a1);
  957. r683error(((T683*)(oBC364eh)),a2);
  958. }
  959. /*No:E_VOID.isa_dca_inline_argument*/
  960. /*No:E_VOID.afd_check*/
  961. void r404check_creation_clause(T404* C,T0* a1){
  962. T0* _args=NULL;
  963. T0* _top=NULL;
  964. T0* _bottom=NULL;
  965. T0* _fn=NULL;
  966. _fn=/*X173*/((T0*)(((T268*)((T268*)((((T404*)C))->_call/*20*/))))->_feature_name/*12*/);
  967. /*IF*/if (X291is_like_current(a1)) {
  968. _top=r627base_class(((T627*)(X776start_position(_fn))));
  969. _bottom=X291base_class(a1);
  970. _fn=r605new_name_of(((T605*)_bottom),_top,_fn);
  971. /*IF*/if ((_fn)==((void*)(NULL))) {
  972. _fn=/*X173*/((T0*)(((T268*)((T268*)((((T404*)C))->_call/*20*/))))->_feature_name/*12*/);
  973. r683add_position(X776start_position(_fn));
  974. /*[IRF3.6append*/{T0* b1=((T0*)ms143_470);
  975. r7append(((T7*)(oBC683explanation)),b1);
  976. }/*]*/
  977. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  978. r7append(((T7*)(oBC683explanation)),b1);
  979. }/*]*/
  980. /*[IRF3.6append*/{T0* b1=((T0*)ms1_394);
  981. r7append(((T7*)(oBC683explanation)),b1);
  982. }/*]*/
  983. /*[IRF3.6append*/{T0* b1=X291run_time_mark(a1);
  984. r7append(((T7*)(oBC683explanation)),b1);
  985. }/*]*/
  986. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms137_470);
  987. r683fatal_error(((T683*)(oBC364eh)),b1);
  988. }/*]*/
  989. }
  990. /*FI*/}
  991. /*FI*/C->_run_feature=r355get_feature(((T355*)(X291run_class(a1))),_fn);
  992. /*IF*/if (((((T404*)C))->_run_feature/*16*/)==((void*)(NULL))) {
  993. r404cp_not_found(C,_fn);
  994. }
  995. /*FI*//*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/) {
  996. }
  997.  else if (!(X291has_creation(a1,_fn))) {
  998. r683add_position(X776start_position(/*X173*/((T0*)(((T268*)((T268*)((((T404*)C))->_call/*20*/))))->_feature_name/*12*/)));
  999. r683add_position(X776start_position(_fn));
  1000. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  1001. r7append(((T7*)(oBC683explanation)),b1);
  1002. }/*]*/
  1003. /*[IRF3.6append*/{T0* b1=((T0*)ms2_394);
  1004. r7append(((T7*)(oBC683explanation)),b1);
  1005. }/*]*/
  1006. r683add_type(a1,((T0*)ms67_470));
  1007. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1008. }
  1009. /*FI*/X496add_client((((T404*)C))->_run_feature/*16*/,r592run_class(((T592*)((((T404*)C))->_run_compound/*4*/))));
  1010. /*IF*/if ((/*X496*/((T0*)(((T832*)((T832*)((((T404*)C))->_run_feature/*16*/))))->_result_type/*24*/))!=((void*)(NULL))) {
  1011. r683add_position(X496start_position((((T404*)C))->_run_feature/*16*/));
  1012. r683add_position(X776start_position(_fn));
  1013. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_394);
  1014. r683fatal_error(((T683*)(oBC364eh)),b1);
  1015. }/*]*/
  1016. }
  1017. /*FI*//*IF*/if (((r404arg_count(C))==(0))&&((/*X496*/((T0*)(((T832*)((T832*)((((T404*)C))->_run_feature/*16*/))))->_arguments/*20*/))!=((void*)(NULL)))) {
  1018. r683add_position(X496start_position((((T404*)C))->_run_feature/*16*/));
  1019. r683add_position((((T404*)C))->_start_position/*8*/);
  1020. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms4_394);
  1021. r683fatal_error(((T683*)(oBC364eh)),b1);
  1022. }/*]*/
  1023. }
  1024. /*FI*//*IF*/if ((r404arg_count(C))>(0)) {
  1025. _args=r431to_runnable(((T431*)(X173arguments((((T404*)C))->_call/*20*/))),r404current_type(C));
  1026. /*IF*/if ((_args)==((void*)(NULL))) {
  1027. r404error(r431start_position(((T431*)(X173arguments((((T404*)C))->_call/*20*/)))),((T0*)ms56_470));
  1028. }
  1029. else {
  1030. r431match_with(((T431*)_args),(((T404*)C))->_run_feature/*16*/);
  1031. }
  1032. /*FI*/}
  1033. /*FI*/C->_call=X173make_runnable((((T404*)C))->_call/*20*/,(((T404*)C))->_run_compound/*4*/,(((T404*)C))->_writable/*12*/,_args,(((T404*)C))->_run_feature/*16*/);
  1034. }
  1035. T0* r404add_comment(T404* C,T0* a1){
  1036. T0* R=NULL;
  1037. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1038. R=(T0*)C;
  1039. }
  1040. /*AF*/else {
  1041. {T46*n=malloc(sizeof(*n));
  1042. *n=M46;
  1043. r46make(n,(T0*)C,a1);
  1044. R=(T0*)n;
  1045. }
  1046. }
  1047. /*FI*/return R;
  1048. }
  1049. void r404check_created_type(T404* C,T0* a1){
  1050. T0* _rt=NULL;
  1051. _rt=X291run_type(a1);
  1052. /*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/) {
  1053. }
  1054.  else if ((((T605*)((T605*)(X291base_class(_rt)))))->_is_deferred/*16*/) {
  1055. r683add_type(_rt,((T0*)ms2_747));
  1056. r683add_position((((T404*)C))->_start_position/*8*/);
  1057. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_747);
  1058. r683fatal_error(((T683*)(oBC364eh)),b1);
  1059. }/*]*/
  1060. }
  1061. /*FI*//*IF*/if (X291is_formal_generic(a1)) {
  1062. r683add_position((((T404*)C))->_start_position/*8*/);
  1063. /*[IRF3.6append*/{T0* b1=((T0*)ms4_747);
  1064. r7append(((T7*)(oBC683explanation)),b1);
  1065. }/*]*/
  1066. r683add_type(a1,((T0*)ms5_747));
  1067. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1068. }
  1069. /*FI*/r355set_at_run_time(((T355*)(X291run_class(_rt))));
  1070. }
  1071. void r404cp_not_found(T404* C,T0* a1){
  1072. r683add_position(X776start_position(/*X173*/((T0*)(((T268*)((T268*)((((T404*)C))->_call/*20*/))))->_feature_name/*12*/)));
  1073. r683add_position(X776start_position(a1));
  1074. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms5_394);
  1075. r683fatal_error(((T683*)(oBC364eh)),b1);
  1076. }/*]*/
  1077. }
  1078. /*No:CREATION_CALL_4.writable*/
  1079. /*No:CREATION_CALL_4.us_dictionary*/
  1080. /*No:CREATION_CALL_4.us_with_capacity*/
  1081. /*No:CREATION_CALL_4.fz_bad_arguments*/
  1082. /*No:CREATION_CALL_4.us_array*/
  1083. void r404make(T404* C,T0* a1,T0* a2,T0* a3,T0* a4){
  1084. C->_start_position=a1;
  1085. C->_type=a2;
  1086. C->_writable=a3;
  1087. C->_call=a4;
  1088. }
  1089. T0* r404run_args(T404* C){
  1090. T0* R=NULL;
  1091. R=X173arguments((((T404*)C))->_call/*20*/);
  1092. return R;
  1093. }
  1094. /*No:CREATION_CALL_4.type*/
  1095. /*No:CREATION_CALL_4.us_string*/
  1096. int r404arg_count(T404* C){
  1097. int R=0;
  1098. /*IF*/if (((((T404*)C))->_call/*20*/)!=((void*)(NULL))) {
  1099. R=X173arg_count((((T404*)C))->_call/*20*/);
  1100. }
  1101. /*FI*/return R;
  1102. }
  1103. /*No:CREATION_CALL_4.call*/
  1104. /*No:CREATION_CALL_4.run_feature*/
  1105. /*No:CREATION_CALL_4.start_position*/
  1106. /*No:CREATION_CALL_4.us_blank*/
  1107. T0* r404to_runnable(T404* C,T0* a1){
  1108. T0* R=NULL;
  1109. /*IF*/if (((((T404*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  1110. r404check_writable(C,a1);
  1111. r404check_explicit_type(C);
  1112. r404check_created_type(C,(((T404*)C))->_type/*24*/);
  1113. r404check_creation_clause(C,(((T404*)C))->_type/*24*/);
  1114. R=(T0*)C;
  1115. }
  1116. else {
  1117. {T404*n=malloc(sizeof(*n));
  1118. *n=M404;
  1119. r404make(n,(((T404*)C))->_start_position/*8*/,(((T404*)C))->_type/*24*/,(((T404*)C))->_writable/*12*/,(((T404*)C))->_call/*20*/);
  1120. R=(T0*)n;
  1121. }
  1122. R=r404to_runnable(((T404*)R),a1);
  1123. }
  1124. /*FI*/return R;
  1125. }
  1126. /*No:CREATION_CALL_4.us_std_file_read*/
  1127. /*No:CREATION_CALL_4.fz_03*/
  1128. /*No:CREATION_CALL_4.us_make*/
  1129. T0* r404current_type(T404* C){
  1130. T0* R=NULL;
  1131. /*IF*/if (((((T404*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  1132. R=(((T592*)((T592*)((((T404*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  1133. }
  1134. /*FI*/return R;
  1135. }
  1136. /*No:CREATION_CALL_4.fz_09*/
  1137. /*No:CREATION_CALL_4.run_compound*/
  1138. void r404check_explicit_type(T404* C){
  1139. T0* _t=NULL;
  1140. _t=X291to_runnable((((T404*)C))->_type/*24*/,r404current_type(C));
  1141. /*IF*/if (((_t)==((void*)(NULL)))||(!(X291is_run_type(_t)))) {
  1142. r683add_position(X291start_position((((T404*)C))->_type/*24*/));
  1143. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_432);
  1144. r683fatal_error(((T683*)(oBC364eh)),b1);
  1145. }/*]*/
  1146. }
  1147. else {
  1148. C->_type=_t;
  1149. }
  1150. /*FI*//*IF*/if (!(X291is_a((((T404*)C))->_type/*24*/,X662result_type((((T404*)C))->_writable/*12*/)))) {
  1151. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_432);
  1152. r683fatal_error(((T683*)(oBC364eh)),b1);
  1153. }/*]*/
  1154. }
  1155. /*FI*/}
  1156. /*No:CREATION_CALL_4.compile_to_jvm0*/
  1157. void r404compile_to_jvm(T404* C){
  1158. T0* _t=NULL;
  1159. T0* _w=NULL;
  1160. _w=(((T404*)C))->_writable/*12*/;
  1161. _t=X291run_type((((T404*)C))->_type/*24*/);
  1162. /*[IRF3.6compile_to_jvm0*/{T0* b1=_t;
  1163. r355jvm_push_default(((T355*)(X291run_class(b1))));
  1164. }/*]*/
  1165. r228inside_new(((T228*)(oBC364jvm)),(((T404*)C))->_run_feature/*16*/,(((T404*)C))->_call/*20*/);
  1166. X291jvm_check_class_invariant(_t);
  1167. X662jvm_assign(_w);
  1168. }
  1169. /*No:CREATION_CALL_4.fz_dot*/
  1170. int r404is_pre_computable(T404* C){
  1171. int R=0;
  1172. T0* _rfctbcn=NULL;
  1173. T0* _rfn=NULL;
  1174. T0* _rfct=NULL;
  1175. /*IF*/if (X662is_result((((T404*)C))->_writable/*12*/)) {
  1176. /*IF*/if ((r404run_args(C))==((void*)(NULL))) {
  1177. R=1;
  1178. }
  1179. else {
  1180. R=r431is_pre_computable(((T431*)(r404run_args(C))));
  1181. }
  1182. /*FI*//*IF*/if (R) {
  1183. /*IF*/if (X496is_pre_computable((((T404*)C))->_run_feature/*16*/)) {
  1184. R=1;
  1185. }
  1186. else {
  1187. _rfct=/*X496*/((T0*)(((T832*)((T832*)((((T404*)C))->_run_feature/*16*/))))->_current_type/*4*/);
  1188. _rfctbcn=(((T451*)((T451*)((((T605*)((T605*)(X291base_class(_rfct)))))->_base_class_name/*24*/))))->_to_string/*0*/;
  1189. _rfn=X776to_string(/*X496*/((T0*)(((T832*)((T832*)((((T404*)C))->_run_feature/*16*/))))->_name/*16*/));
  1190. /*IF*/if ((((T0*)ms89_473))==((void*)(_rfn))) {
  1191. R=r52has(((T52*)(oBC394make_precomputable)),_rfctbcn);
  1192. }
  1193.  else if ((((T0*)ms51_473))==((void*)(_rfn))) {
  1194. R=(((T0*)ms25_473))==((void*)(_rfctbcn));
  1195. }
  1196.  else if ((((T0*)ms141_473))==((void*)(_rfn))) {
  1197. /*IF*/if ((((T0*)ms2_473))==((void*)(_rfctbcn))) {
  1198. R=1;
  1199. }
  1200.  else if ((((T0*)ms13_473))==((void*)(_rfctbcn))) {
  1201. R=1;
  1202. }
  1203.  else if ((((T0*)ms10_473))==((void*)(_rfctbcn))) {
  1204. R=1;
  1205. }
  1206. else {
  1207. R=0;
  1208. }
  1209. /*FI*/}
  1210. /*FI*/}
  1211. /*FI*/}
  1212. /*FI*/}
  1213. /*FI*/return R;
  1214. }
  1215. int r404use_current(T404* C){
  1216. int R=0;
  1217. /*IF*/if ((r404run_args(C))!=((void*)(NULL))) {
  1218. R=r431use_current(((T431*)(r404run_args(C))));
  1219. }
  1220. /*FI*/R=(R)||(X662use_current((((T404*)C))->_writable/*12*/));
  1221. return R;
  1222. }
  1223. void r404check_writable(T404* C,T0* a1){
  1224. T0* _w=NULL;
  1225. C->_run_compound=a1;
  1226. _w=X662to_runnable((((T404*)C))->_writable/*12*/,r404current_type(C));
  1227. /*IF*/if ((_w)==((void*)(NULL))) {
  1228. r683add_position(X662start_position((((T404*)C))->_writable/*12*/));
  1229. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_747);
  1230. r683fatal_error(((T683*)(oBC364eh)),b1);
  1231. }/*]*/
  1232. }
  1233. else {
  1234. C->_writable=_w;
  1235. }
  1236. /*FI*/}
  1237. void r404error(T0* a1,T0* a2){
  1238. r683add_position(a1);
  1239. r683error(((T683*)(oBC364eh)),a2);
  1240. }
  1241. /*No:CREATION_CALL_4.fatal_error*/
  1242. /*No:CREATION_CALL_4.end_mark_comment*/
  1243. /*No:CREATION_CALL_4.us_fixed_array*/
  1244. void r404afd_check(T404* C){
  1245. /*IF*/if ((r404arg_count(C))>(0)) {
  1246. r431afd_check(((T431*)(r404run_args(C))));
  1247. }
  1248. /*FI*/}
  1249. /*No:CALL_INFIX_INT_REM.arguments*/
  1250. T0* r453add_comment(T453* C,T0* a1){
  1251. T0* R=NULL;
  1252. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  1253. R=(T0*)C;
  1254. }
  1255. else {
  1256. {T529*n=malloc(sizeof(*n));
  1257. *n=M529;
  1258. r529make(n,(T0*)C,a1);
  1259. R=(T0*)n;
  1260. }
  1261. }
  1262. /*FI*/return R;
  1263. }
  1264. int r453to_integer(T453* C){
  1265. int R=0;
  1266. r453error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T453*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  1267. return R;
  1268. }
  1269. int r453is_a(T453* C,T0* a1){
  1270. int R=0;
  1271. R=X291is_a(X291run_type((((T453*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  1272. /*IF*/if (!(R)) {
  1273. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T453*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
  1274. r453error(X662start_position(a1),((T0*)ms4_662));
  1275. }
  1276. /*FI*/return R;
  1277. }
  1278. /*No:CALL_INFIX_INT_REM.is_current*/
  1279. /*No:CALL_INFIX_INT_REM.jvm_branch_if_false*/
  1280. /*No:CALL_INFIX_INT_REM.static_value*/
  1281. void r453make(T453* C,T0* a1,T0* a2,T0* a3){
  1282. T0* _eal=NULL;
  1283. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  1284. r683add_position(a2);
  1285. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  1286. r683fatal_error(((T683*)(oBC364eh)),b1);
  1287. }/*]*/
  1288. }
  1289. /*FI*/{T454*n=malloc(sizeof(*n));
  1290. *n=M454;
  1291. r454make(n,((T0*)ms1_453),a2);
  1292. C->_feature_name=(T0*)n;
  1293. }
  1294. {T431*n=malloc(sizeof(*n));
  1295. *n=M431;
  1296. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  1297. /*]*/
  1298. _eal=(T0*)n;
  1299. }
  1300. r453make_call_1(C,a1,(((T453*)C))->_feature_name/*28*/,_eal);
  1301. }
  1302. /*No:CALL_INFIX_INT_REM.nb_errors*/
  1303. /*No:CALL_INFIX_INT_REM.feature_name*/
  1304. /*No:CALL_INFIX_INT_REM.compile_to_jvm_assignment*/
  1305. /*No:CALL_INFIX_INT_REM.fz_iinaiv*/
  1306. /*No:CALL_INFIX_INT_REM.arg_count*/
  1307. /*No:CALL_INFIX_INT_REM.jvm_branch_if_true*/
  1308. /*No:CALL_INFIX_INT_REM.run_feature*/
  1309. /*No:CALL_INFIX_INT_REM.start_position*/
  1310. void r453compile_to_jvm_old(T453* C){
  1311. X662compile_to_jvm_old((((T453*)C))->_target/*12*/);
  1312. /*IF*/{/*AT*/r431compile_to_jvm_old(((T431*)((((T453*)C))->_arguments/*24*/)));
  1313. }
  1314. /*FI*/}
  1315. /*No:CALL_INFIX_INT_REM.target*/
  1316. T0* r453to_runnable(T453* C,T0* a1){
  1317. T0* R=NULL;
  1318. T0* _tla=NULL;
  1319. T0* _a=NULL;
  1320. /*IF*/if (((((T453*)C))->_current_type/*8*/)==((void*)(NULL))) {
  1321. r453to_runnable_0(C,a1);
  1322. _a=r431to_runnable(((T431*)((((T453*)C))->_arguments/*24*/)),a1);
  1323. /*IF*/if ((_a)==((void*)(NULL))) {
  1324. r453error(X662start_position(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*24*/)))/*)*/),((T0*)ms55_470));
  1325. }
  1326. else {
  1327. C->_arguments=_a;
  1328. }
  1329. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1330. r431match_with(((T431*)((((T453*)C))->_arguments/*24*/)),(((T453*)C))->_run_feature/*16*/);
  1331. }
  1332. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1333. _tla=(((T453*)C))->_result_type/*20*/;
  1334. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  1335. case 239: 
  1336. break;
  1337. default:
  1338. _tla=NULL;
  1339. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  1340. C->_result_type=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*24*/)))/*)*/));
  1341. }
  1342. /*FI*/}
  1343. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1344. R=(T0*)C;
  1345. }
  1346. /*FI*/}
  1347. else {
  1348. R=r453twin(C);
  1349. /*[IRF3.3set_current_type*/((((T453*)(((T453*)R))))->_current_type)=(NULL);
  1350. /*]*/
  1351. R=r453to_runnable(((T453*)R),a1);
  1352. }
  1353. /*FI*/return R;
  1354. }
  1355. /*No:CALL_INFIX_INT_REM.result_type*/
  1356. /*No:CALL_INFIX_INT_REM.is_result*/
  1357. T0* r453twin(T453* C){
  1358. T0* R=NULL;
  1359. R=malloc(sizeof(*C));
  1360. *((T453*)R)=*C;
  1361. return R;
  1362. }
  1363. /*No:CALL_INFIX_INT_REM.set_current_type*/
  1364. /*No:CALL_INFIX_INT_REM.operator*/
  1365. int r453is_static(T453* C){
  1366. int R=0;
  1367. /*IF*/if (X291is_integer((((T453*)C))->_result_type/*20*/)) {
  1368. /*IF*/if ((X662is_static((((T453*)C))->_target/*12*/))&&(X662is_static(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*24*/)))/*)*/))) {
  1369. R=1;
  1370. C->_static_value_mem=(X662static_value((((T453*)C))->_target/*12*/))%(X662static_value(/*(IRF4.6arg1*/r431first(((T431*)((((T453*)C))->_arguments/*24*/)))/*)*/));
  1371. }
  1372. /*FI*/}
  1373. /*FI*/return R;
  1374. }
  1375. void r453standard_compile_target_to_jvm(T453* C){
  1376. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T453* C1=C;
  1377. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  1378. }/*]*/
  1379. /*]*/
  1380. X291jvm_check_class_invariant((((T453*)C))->_result_type/*20*/);
  1381. }
  1382. int r453compile_to_jvm_into(T453* C,T0* a1){
  1383. int R=0;
  1384. R=r453standard_compile_to_jvm_into(C,a1);
  1385. return R;
  1386. }
  1387. /*No:CALL_INFIX_INT_REM.compile_target_to_jvm*/
  1388. /*No:CALL_INFIX_INT_REM.fz_07*/
  1389. /*No:CALL_INFIX_INT_REM.can_be_dropped*/
  1390. /*No:CALL_INFIX_INT_REM.current_type*/
  1391. /*No:CALL_INFIX_INT_REM.jvm_assign*/
  1392. /*No:CALL_INFIX_INT_REM.static_value_mem*/
  1393. void r453make_call_1(T453* C,T0* a1,T0* a2,T0* a3){
  1394. C->_target=a1;
  1395. C->_feature_name=a2;
  1396. C->_arguments=a3;
  1397. }
  1398. /*No:CALL_INFIX_INT_REM.is_manifest_string*/
  1399. /*No:CALL_INFIX_INT_REM.is_void*/
  1400. int r453jvm_standard_branch_if_false(T453* C){
  1401. int R=0;
  1402. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T453* C1=C;
  1403. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  1404. }/*]*/
  1405. /*]*/
  1406. R=r256opcode_ifeq(((T256*)(oBC364code_attribute)));
  1407. return R;
  1408. }
  1409. /*No:CALL_INFIX_INT_REM.compile_to_jvm*/
  1410. void r453to_runnable_0(T453* C,T0* a1){
  1411. C->_current_type=a1;
  1412. r453cpc_to_runnable(C,a1);
  1413. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T453*)C))->_run_feature/*16*/))))->_result_type/*24*/);
  1414. /*IF*/if (((((T453*)C))->_result_type/*20*/)==((void*)(NULL))) {
  1415. r683add_position(X496start_position((((T453*)C))->_run_feature/*16*/));
  1416. r453error((((T454*)((T454*)((((T453*)C))->_feature_name/*28*/))))->_start_position/*8*/,((T0*)ms1_295));
  1417. }
  1418.  else if (X291is_like_current((((T453*)C))->_result_type/*20*/)) {
  1419. C->_result_type=X662result_type((((T453*)C))->_target/*12*/);
  1420. }
  1421. /*FI*/}
  1422. /*No:CALL_INFIX_INT_REM.is_pre_computable*/
  1423. int r453jvm_standard_branch_if_true(T453* C){
  1424. int R=0;
  1425. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T453* C1=C;
  1426. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  1427. }/*]*/
  1428. /*]*/
  1429. R=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  1430. return R;
  1431. }
  1432. int r453use_current(T453* C){
  1433. int R=0;
  1434. /*IF*/{/*AT*/R=r431use_current(((T431*)((((T453*)C))->_arguments/*24*/)));
  1435. }
  1436. /*FI*//*IF*/if (R) {
  1437. }
  1438.  else if (X662is_current((((T453*)C))->_target/*12*/)) {
  1439. R=X496use_current((((T453*)C))->_run_feature/*16*/);
  1440. }
  1441. else {
  1442. R=X662use_current((((T453*)C))->_target/*12*/);
  1443. }
  1444. /*FI*/return R;
  1445. }
  1446. void r453cpc_to_runnable(T453* C,T0* a1){
  1447. T0* _rc=NULL;
  1448. T0* _t=NULL;
  1449. _t=X662to_runnable((((T453*)C))->_target/*12*/,a1);
  1450. /*IF*/if ((_t)==((void*)(NULL))) {
  1451. r683add_position(X662start_position((((T453*)C))->_target/*12*/));
  1452. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  1453. r683fatal_error(((T683*)(oBC364eh)),b1);
  1454. }/*]*/
  1455. }
  1456. /*FI*/C->_target=_t;
  1457. _rc=X291run_class(X662result_type((((T453*)C))->_target/*12*/));
  1458. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  1459. r576update((((T453*)C))->_target/*12*/,(((T453*)C))->_run_feature/*16*/);
  1460. }
  1461. void r453error(T0* a1,T0* a2){
  1462. r683add_position(a1);
  1463. r683error(((T683*)(oBC364eh)),a2);
  1464. }
  1465. /*No:CALL_INFIX_INT_REM.isa_dca_inline_argument*/
  1466. /*No:CALL_INFIX_INT_REM.fatal_error*/
  1467. /*No:CALL_INFIX_INT_REM.fz_bad_argument*/
  1468. /*No:CALL_INFIX_INT_REM.arg1*/
  1469. int r453standard_compile_to_jvm_into(T453* C,T0* a1){
  1470. int R=0;
  1471. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T453* C1=C;
  1472. r228b_put_cpc(((T228*)(oBC364jvm)),(T0*)C1);
  1473. }/*]*/
  1474. /*]*/
  1475. R=X291jvm_convert_to(X291run_type((((T453*)C))->_result_type/*20*/),a1);
  1476. return R;
  1477. }
  1478. /*No:CALL_INFIX_INT_REM.call_proc_call_c2jvm*/
  1479. void r453afd_check(T453* C){
  1480. T0* _running=NULL;
  1481. T0* _rc=NULL;
  1482. _rc=X291run_class(X662result_type((((T453*)C))->_target/*12*/));
  1483. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  1484. /*IF*/if ((_running)==((void*)(NULL))) {
  1485. r683add_position(X662start_position((((T453*)C))->_target/*12*/));
  1486. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  1487. r7append(((T7*)(oBC683explanation)),b1);
  1488. }/*]*/
  1489. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  1490. r7append(((T7*)(oBC683explanation)),b1);
  1491. }/*]*/
  1492. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  1493. r7append(((T7*)(oBC683explanation)),b1);
  1494. }/*]*/
  1495. r683print_as_warning(((T683*)(oBC364eh)));
  1496. r355set_at_run_time(((T355*)_rc));
  1497. }
  1498.  else if ((r396count(((T396*)_running)))>(0)) {
  1499. r576update((((T453*)C))->_target/*12*/,(((T453*)C))->_run_feature/*16*/);
  1500. }
  1501. /*FI*/X662afd_check((((T453*)C))->_target/*12*/);
  1502. /*IF*/{/*AT*/r431afd_check(((T431*)((((T453*)C))->_arguments/*24*/)));
  1503. }
  1504. /*FI*/}
  1505. T0*oBC798tmp_name=NULL;
  1506. T0*oBC798running=NULL;
  1507. void r798jvm_switch(T0* a1,T0* a2){
  1508. T0* _ca=NULL;
  1509. int _boost=0;
  1510. T0* _dyn_rf=NULL;
  1511. T0* _dyn_rc=NULL;
  1512. int _i=0;
  1513. int _idx=0;
  1514. int _point=0;
  1515. int _space=0;
  1516. _ca=oBC364code_attribute;
  1517. _boost=r590boost(((T590*)(oBC364run_control)));
  1518. _i=(((T396*)((T396*)(oBC798running))))->_upper/*8*/;
  1519. while (!((_i)==(0))) {
  1520. _dyn_rc=r396item(((T396*)(oBC798running)),_i);
  1521. _dyn_rf=r355dynamic(((T355*)_dyn_rc),a1);
  1522. /*IF*/if (((_i)==(1))&&(_boost)) {
  1523. }
  1524. else {
  1525. /*[IRF3.4opcode_aload_0*/r256opcode(((T256*)_ca),42,1);
  1526. /*]*/
  1527. _idx=r355fully_qualified_constant_pool_index(((T355*)(X496run_class(_dyn_rf))));
  1528. r256opcode_instanceof(((T256*)_ca),_idx);
  1529. _point=r256opcode_ifeq(((T256*)_ca));
  1530. }
  1531. /*FI*/r228push_switch(((T228*)(oBC364jvm)),_dyn_rf,a1);
  1532. X496mapping_jvm(_dyn_rf);
  1533. r228pop(((T228*)(oBC364jvm)));
  1534. /*IF*/if ((a2)==((void*)(NULL))) {
  1535. /*[IRF3.2opcode_return*//*[IRF3.6add_u1*/{int b1=177;
  1536. r226add_last(((T226*)(oBC256code)),b1);
  1537. }/*]*/
  1538. /*]*/
  1539. }
  1540. else {
  1541. _space=X291jvm_convert_to(/*X496*/((T0*)(((T832*)((T832*)_dyn_rf)))->_result_type/*24*/),a2);
  1542. X291jvm_return_code(a2);
  1543. }
  1544. /*FI*//*IF*/if (((_i)==(1))&&(_boost)) {
  1545. }
  1546. else {
  1547. r256resolve_u2_branch(_point);
  1548. }
  1549. /*FI*/_i=(_i)-(1);
  1550. }
  1551. /*IF*/if (_boost) {
  1552. }
  1553. else {
  1554. r256opcode_system_err_println(((T256*)_ca),r798idx_error01());
  1555. /*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)_ca),4,1);
  1556. /*]*/
  1557. r256opcode_system_exit(((T256*)_ca));
  1558. }
  1559. /*FI*/}
  1560. T0* r798jvm_descriptor(T0* a1){
  1561. T0* R=NULL;
  1562. T0* _rt=NULL;
  1563. T0* _arguments=NULL;
  1564. _arguments=/*X496*/((T0*)(((T832*)((T832*)a1)))->_arguments/*20*/);
  1565. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC798tmp_jvmd)))))->_count)=(0);
  1566. /*]*/
  1567. r7extend(((T7*)(oBC798tmp_jvmd)),'\50');
  1568. r7append(((T7*)(oBC798tmp_jvmd)),r798jvm_root_descriptor());
  1569. /*IF*/if ((_arguments)!=((void*)(NULL))) {
  1570. r31jvm_descriptor_in(((T31*)_arguments),oBC798tmp_jvmd);
  1571. }
  1572. /*FI*/_rt=/*X496*/((T0*)(((T832*)((T832*)a1)))->_result_type/*24*/);
  1573. /*IF*/if ((_rt)==((void*)(NULL))) {
  1574. r7append(((T7*)(oBC798tmp_jvmd)),((T0*)ms153_470));
  1575. }
  1576. else {
  1577. _rt=X291run_type(_rt);
  1578. r7extend(((T7*)(oBC798tmp_jvmd)),'\51');
  1579. /*IF*/if (X291is_reference(_rt)) {
  1580. r7append(((T7*)(oBC798tmp_jvmd)),r798jvm_root_descriptor());
  1581. }
  1582. else {
  1583. X291jvm_descriptor_in(_rt,oBC798tmp_jvmd);
  1584. }
  1585. /*FI*/}
  1586. /*FI*/R=oBC798tmp_jvmd;
  1587. return R;
  1588. }
  1589. T0* r798name(T0* a1){
  1590. T0* R=NULL;
  1591. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC798tmp_name)))))->_count)=(0);
  1592. /*]*/
  1593. r7extend(((T7*)(oBC798tmp_name)),'X');
  1594. r2append_in(X291id(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/)),oBC798tmp_name);
  1595. r7append(((T7*)(oBC798tmp_name)),X776to_key(/*X496*/((T0*)(((T832*)((T832*)a1)))->_name/*16*/)));
  1596. R=oBC798tmp_name;
  1597. return R;
  1598. }
  1599. T0* r798jvm_root_class(void){
  1600. if (fBC364jvm_root_class==0){
  1601. T0* R=NULL;
  1602. fBC364jvm_root_class=1;
  1603. {T7*n=malloc(sizeof(*n));
  1604. *n=M7;
  1605. r7make(n,12);
  1606. R=(T0*)n;
  1607. }
  1608. r7copy(((T7*)R),(((T228*)((T228*)(oBC364jvm))))->_output_name/*16*/);
  1609. r7extend(((T7*)R),'\57');
  1610. r7append(((T7*)R),((T0*)ms112_470));
  1611. oBC364jvm_root_class=R;}
  1612. return oBC364jvm_root_class;}
  1613. T0* r798jvm_root_descriptor(void){
  1614. if (fBC364jvm_root_descriptor==0){
  1615. T0* R=NULL;
  1616. fBC364jvm_root_descriptor=1;
  1617. {T7*n=malloc(sizeof(*n));
  1618. *n=M7;
  1619. r7make(n,12);
  1620. R=(T0*)n;
  1621. }
  1622. r7extend(((T7*)R),'L');
  1623. r7append(((T7*)R),r798jvm_root_class());
  1624. r7extend(((T7*)R),'\73');
  1625. oBC364jvm_root_descriptor=R;}
  1626. return oBC364jvm_root_descriptor;}
  1627. /*No:SWITCH.fz_19*/
  1628. int r798idx_methodref(T0* a1){
  1629. int R=0;
  1630. R=r95idx_methodref3(((T95*)(oBC364constant_pool)),r798jvm_root_class(),r798name(a1),r798jvm_descriptor(a1));
  1631. return R;
  1632. }
  1633. /*No:SWITCH.fz_jvm_root*/
  1634. int r798idx_error01(void){
  1635. int R=0;
  1636. R=r95idx_string(((T95*)(oBC364constant_pool)),((T0*)ms15_798));
  1637. return R;
  1638. }
  1639. T0*oBC798tmp_jvmd=NULL;
  1640. void r798jvm_define(T0* a1){
  1641. T0* _rt=NULL;
  1642. r506start(((T506*)(oBC364method_info)),9,r798name(a1),r798jvm_descriptor(a1));
  1643. r396copy(((T396*)(oBC798running)),(((T355*)((T355*)(X291run_class(/*X496*/((T0*)(((T832*)((T832*)a1)))->_current_type/*4*/))))))->_running/*12*/);
  1644. _rt=/*X496*/((T0*)(((T832*)((T832*)a1)))->_result_type/*24*/);
  1645. /*IF*/if ((_rt)!=((void*)(NULL))) {
  1646. _rt=X291run_type(_rt);
  1647. }
  1648. /*FI*/r798jvm_switch(a1,_rt);
  1649. r506finish(((T506*)(oBC364method_info)));
  1650. }
  1651. void r798jvm_mapping(T0* a1){
  1652. int _switch=0;
  1653. T0* _fal=NULL;
  1654. T0* _eal=NULL;
  1655. T0* _target=NULL;
  1656. T0* _up_rf=NULL;
  1657. int _stack_level=0;
  1658. int _idx=0;
  1659. _target=X135target(a1);
  1660. _up_rf=X135run_feature(a1);
  1661. _eal=X135arguments(a1);
  1662. X662compile_to_jvm(_target);
  1663. _stack_level=1;
  1664. /*IF*/if ((_eal)!=((void*)(NULL))) {
  1665. _fal=/*X496*/((T0*)(((T832*)((T832*)_up_rf)))->_arguments/*20*/);
  1666. _stack_level=(_stack_level)+(r431compile_to_jvm(((T431*)_eal),_fal));
  1667. }
  1668. /*FI*/_idx=r798idx_methodref(_up_rf);
  1669. r256opcode_invokestatic(((T256*)(oBC364code_attribute)),_idx,-(_stack_level));
  1670. }
  1671. /*No:ASSERTION.fz_is_not_boolean*/
  1672. /*No:ASSERTION.fz_bad_assertion*/
  1673. void r348make(T348* C,T0* a1,T0* a2,T0* a3){
  1674. C->_tag=a1;
  1675. C->_expression=a2;
  1676. C->_comment=a3;
  1677. }
  1678. /*No:ASSERTION.expression*/
  1679. T0* r348start_position(T348* C){
  1680. T0* R=NULL;
  1681. /*IF*/if (((((T348*)C))->_tag/*0*/)!=((void*)(NULL))) {
  1682. R=(((T490*)((T490*)((((T348*)C))->_tag/*0*/))))->_start_position/*4*/;
  1683. }
  1684.  else if (((((T348*)C))->_expression/*4*/)!=((void*)(NULL))) {
  1685. R=X662start_position((((T348*)C))->_expression/*4*/);
  1686. }
  1687. else {
  1688. R=(((T393*)((T393*)((((T348*)C))->_comment/*8*/))))->_start_position/*0*/;
  1689. }
  1690. /*FI*/return R;
  1691. }
  1692. void r348compile_to_jvm_old(T348* C){
  1693. /*IF*/if (((((T348*)C))->_expression/*4*/)!=((void*)(NULL))) {
  1694. X662compile_to_jvm_old((((T348*)C))->_expression/*4*/);
  1695. }
  1696. /*FI*/}
  1697. /*No:ASSERTION.comment*/
  1698. T0* r348to_runnable(T348* C,T0* a1){
  1699. T0* R=NULL;
  1700. T0* _e=NULL;
  1701. /*IF*/if (((((T348*)C))->_current_type/*12*/)==((void*)(NULL))) {
  1702. C->_current_type=a1;
  1703. R=(T0*)C;
  1704. /*IF*/if (((((T348*)C))->_expression/*4*/)!=((void*)(NULL))) {
  1705. _e=X662to_runnable((((T348*)C))->_expression/*4*/,a1);
  1706. /*IF*/if ((_e)==((void*)(NULL))) {
  1707. r348error(r348start_position(C),((T0*)ms57_470));
  1708. }
  1709. else {
  1710. C->_expression=_e;
  1711. /*IF*/if (!(X291is_boolean(X662result_type((((T348*)C))->_expression/*4*/)))) {
  1712. r683add_type(X662result_type((((T348*)C))->_expression/*4*/),((T0*)ms73_470));
  1713. r348error(r348start_position(C),((T0*)ms57_470));
  1714. }
  1715. /*FI*/}
  1716. /*FI*/}
  1717. /*FI*/}
  1718. else {
  1719. {T348*n=malloc(sizeof(*n));
  1720. *n=M348;
  1721. r348make(n,(((T348*)C))->_tag/*0*/,(((T348*)C))->_expression/*4*/,(((T348*)C))->_comment/*8*/);
  1722. R=(T0*)n;
  1723. }
  1724. R=r348to_runnable(((T348*)R),a1);
  1725. }
  1726. /*FI*/return R;
  1727. }
  1728. int r348idx_error_message(T348* C){
  1729. int R=0;
  1730. T0* _sp=NULL;
  1731. r7copy(((T7*)(oBC348tmp_string)),((T0*)ms176_470));
  1732. _sp=X662start_position((((T348*)C))->_expression/*4*/);
  1733. /*IF*/if ((_sp)!=((void*)(NULL))) {
  1734. r7extend(((T7*)(oBC348tmp_string)),'\40');
  1735. r627append_in(((T627*)_sp),oBC348tmp_string);
  1736. }
  1737. /*FI*/R=r95idx_string(((T95*)(oBC364constant_pool)),oBC348tmp_string);
  1738. return R;
  1739. }
  1740. /*No:ASSERTION.fz_50*/
  1741. /*No:ASSERTION.tag*/
  1742. T0*oBC348tmp_string=NULL;
  1743. /*No:ASSERTION.current_type*/
  1744. void r348compile_to_jvm(T348* C,int a1){
  1745. T0* _ca=NULL;
  1746. int _idx=0;
  1747. int _point1=0;
  1748. _ca=oBC364code_attribute;
  1749. /*IF*/if (((((T348*)C))->_expression/*4*/)==((void*)(NULL))) {
  1750. /*IF*/if (a1) {
  1751. }
  1752. else {
  1753. /*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)_ca),4,1);
  1754. /*]*/
  1755. }
  1756. /*FI*/}
  1757. else {
  1758. X662compile_to_jvm((((T348*)C))->_expression/*4*/);
  1759. /*IF*/if (a1) {
  1760. _point1=r256opcode_ifne(((T256*)(oBC364code_attribute)));
  1761. _idx=r348idx_error_message(C);
  1762. r256opcode_system_err_println(((T256*)_ca),_idx);
  1763. /*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)_ca),1,1);
  1764. /*]*/
  1765. /*[IRF3.4opcode_athrow*/r256opcode(((T256*)_ca),191,0);
  1766. /*]*/
  1767. r256resolve_u2_branch(_point1);
  1768. }
  1769. /*FI*/}
  1770. /*FI*/}
  1771. int r348is_pre_computable(T348* C){
  1772. int R=0;
  1773. /*IF*/if (((((T348*)C))->_expression/*4*/)==((void*)(NULL))) {
  1774. R=1;
  1775. }
  1776. else {
  1777. R=X662is_pre_computable((((T348*)C))->_expression/*4*/);
  1778. }
  1779. /*FI*/return R;
  1780. }
  1781. int r348use_current(T348* C){
  1782. int R=0;
  1783. /*IF*/if (((((T348*)C))->_expression/*4*/)!=((void*)(NULL))) {
  1784. R=X662use_current((((T348*)C))->_expression/*4*/);
  1785. }
  1786. /*FI*/return R;
  1787. }
  1788. void r348error(T0* a1,T0* a2){
  1789. r683add_position(a1);
  1790. r683error(((T683*)(oBC364eh)),a2);
  1791. }
  1792. void r348afd_check(T348* C){
  1793. /*IF*/if (((((T348*)C))->_expression/*4*/)!=((void*)(NULL))) {
  1794. X662afd_check((((T348*)C))->_expression/*4*/);
  1795. }
  1796. /*FI*/}
  1797. /*No:WHEN_ITEM_2.lower_value*/
  1798. /*No:WHEN_ITEM_2.upper_value*/
  1799. T0* r372to_runnable_integer(T372* C,T0* a1){
  1800. T0* R=NULL;
  1801. T0* _v=NULL;
  1802. /*IF*/if (((((T372*)C))->_e_when/*4*/)==((void*)(NULL))) {
  1803. C->_e_when=a1;
  1804. _v=X662to_runnable((((T372*)C))->_lower/*12*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T372*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
  1805. /*IF*/if (((_v)!=((void*)(NULL)))&&(X291is_integer(X662result_type(_v)))) {
  1806. C->_lower=_v;
  1807. C->_lower_value=X662to_integer((((T372*)C))->_lower/*12*/);
  1808. }
  1809. else {
  1810. r372error(X662start_position((((T372*)C))->_lower/*12*/),((T0*)ms60_470));
  1811. }
  1812. /*FI*/_v=X662to_runnable((((T372*)C))->_upper/*8*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T372*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
  1813. /*IF*/if (((_v)!=((void*)(NULL)))&&(X291is_integer(X662result_type(_v)))) {
  1814. C->_upper=_v;
  1815. C->_upper_value=X662to_integer((((T372*)C))->_upper/*8*/);
  1816. }
  1817. else {
  1818. r372error(X662start_position((((T372*)C))->_upper/*8*/),((T0*)ms60_470));
  1819. }
  1820. /*FI*/r843add_when_item_2(((T843*)((((T372*)C))->_e_when/*4*/)),(T0*)C);
  1821. R=(T0*)C;
  1822. }
  1823. else {
  1824. {T372*n=malloc(sizeof(*n));
  1825. *n=M372;
  1826. r372make(n,(((T372*)C))->_lower/*12*/,(((T372*)C))->_upper/*8*/);
  1827. R=(T0*)n;
  1828. }
  1829. R=r372to_runnable_integer(((T372*)R),a1);
  1830. }
  1831. /*FI*/return R;
  1832. }
  1833. void r372make(T372* C,T0* a1,T0* a2){
  1834. C->_lower=a1;
  1835. C->_upper=a2;
  1836. }
  1837. T0* r372start_position(T372* C){
  1838. T0* R=NULL;
  1839. R=X662start_position((((T372*)C))->_lower/*12*/);
  1840. return R;
  1841. }
  1842. /*No:WHEN_ITEM_2.clear_e_when*/
  1843. /*No:WHEN_ITEM_2.fz_bcv*/
  1844. T0* r372twin(T372* C){
  1845. T0* R=NULL;
  1846. R=malloc(sizeof(*C));
  1847. *((T372*)R)=*C;
  1848. return R;
  1849. }
  1850. /*No:WHEN_ITEM_2.current_type*/
  1851. /*No:WHEN_ITEM_2.fz_biv*/
  1852. /*No:WHEN_ITEM_2.lower*/
  1853. /*No:WHEN_ITEM_2.upper*/
  1854. void r372error(T0* a1,T0* a2){
  1855. r683add_position(a1);
  1856. r683error(((T683*)(oBC364eh)),a2);
  1857. }
  1858. T0* r372to_runnable_character(T372* C,T0* a1){
  1859. T0* R=NULL;
  1860. T0* _v=NULL;
  1861. /*IF*/if (((((T372*)C))->_e_when/*4*/)==((void*)(NULL))) {
  1862. C->_e_when=a1;
  1863. _v=X662to_runnable((((T372*)C))->_lower/*12*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T372*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
  1864. /*IF*/if (((_v)!=((void*)(NULL)))&&(X291is_character(X662result_type(_v)))) {
  1865. C->_lower=_v;
  1866. C->_lower_value=X662to_integer((((T372*)C))->_lower/*12*/);
  1867. }
  1868. else {
  1869. r372error(X662start_position((((T372*)C))->_lower/*12*/),((T0*)ms58_470));
  1870. }
  1871. /*FI*/_v=X662to_runnable((((T372*)C))->_upper/*8*/,/*(IRF4.6current_type*//*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)((T843*)((((T372*)C))->_e_when/*4*/))))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*//*)*/);
  1872. /*IF*/if (((_v)!=((void*)(NULL)))&&(X291is_character(X662result_type(_v)))) {
  1873. C->_upper=_v;
  1874. C->_upper_value=X662to_integer((((T372*)C))->_upper/*8*/);
  1875. }
  1876. else {
  1877. r372error(X662start_position((((T372*)C))->_upper/*8*/),((T0*)ms58_470));
  1878. }
  1879. /*FI*/r843add_when_item_2(((T843*)((((T372*)C))->_e_when/*4*/)),(T0*)C);
  1880. R=(T0*)C;
  1881. }
  1882. else {
  1883. {T372*n=malloc(sizeof(*n));
  1884. *n=M372;
  1885. r372make(n,(((T372*)C))->_lower/*12*/,(((T372*)C))->_upper/*8*/);
  1886. R=(T0*)n;
  1887. }
  1888. R=r372to_runnable_character(((T372*)R),a1);
  1889. }
  1890. /*FI*/return R;
  1891. }
  1892. /*No:WHEN_ITEM_2.e_when*/
  1893. void r153add_into(T153* C,T0* a1){
  1894. T0* _f=NULL;
  1895. int _i=0;
  1896. /*IF*/if (((((T153*)C))->_list/*8*/)!=((void*)(NULL))) {
  1897. _i=0;
  1898. while (!((_i)>((((T352*)((T352*)((((T153*)C))->_list/*8*/))))->_upper/*8*/))) {
  1899. _f=/*(IRF4.6item*/((((T352*)((T352*)((((T153*)C))->_list/*8*/))))->_storage/*0*/)[_i]/*)*/;
  1900. X359set_clients(_f,(((T153*)C))->_clients/*0*/);
  1901. X359add_into(_f,a1);
  1902. _i=(_i)+(1);
  1903. }
  1904. }
  1905. /*FI*/}
  1906. void r153make(T153* C,T0* a1,T0* a2,T0* a3){
  1907. C->_clients=a1;
  1908. C->_comment=a2;
  1909. C->_list=a3;
  1910. }
  1911. /*No:FEATURE_CLAUSE.comment*/
  1912. /*No:FEATURE_CLAUSE.list*/
  1913. /*No:FEATURE_CLAUSE.clients*/
  1914.  
  1915.